Micron Document
██████╗ ███████╗████████╗██╗██████╗ ███████╗██████╗ ██╗ █████╗
██╔══██╗██╔════╝╚══██╔══╝██║██╔══██╗██╔════╝██╔══██╗██║██╔══██╗
██████╔╝█████╗ ██║ ██║██████╔╝█████╗ ██║ ██║██║███████║
██╔══██╗██╔══╝ ██║ ██║██╔═══╝ ██╔══╝ ██║ ██║██║██╔══██║
██║ ██║███████╗ ██║ ██║██║ ███████╗██████╔╝██║██║ ██║
╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝╚═╝ ╚══════╝╚═════╝ ╚═╝╚═╝ ╚═╝


🬧 The NomadNet Encyclopedia | Archives | Info
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b

🔍 Search

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

Unified Modeling Language
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
In mwdaingegneria del software, mwdqUML (mwdgUnified Modeling Language, "linguaggio di modellizzazione unificato") è un mwdwlinguaggio di modellazione e mweadi specifica basato sul mweqparadigma orientato agli oggetti. Il nucleo del linguaggio fu definito nel 1996 da mwegGrady Booch, mwewJim Rumbaugh e mwfaIvar Jacobson (detti "i tre amigos") sotto l'egida dell'mwfqObject Management Group (OMG), consorzio che tuttora gestisce lo standard UML.

Contents

Storia
UML 2.0

──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Storia

I linguaggi per la modellazione orientata agli oggetti iniziarono a svilupparsi in diversi contesti a partire dagli mwgqanni ottanta. Si trattava di notazioni di varia natura, che consentivano di descrivere la struttura di un sistema software a oggetti, in termini di mwggclassi e relazioni fra classi, ed eventualmente il suo comportamento dinamico. La proliferazione di queste notazioni diede luogo a quelle che furono poi battezzate "guerre dei metodi" (mwgwmethod wars), con diversi progettisti o organizzazioni che adottavano e sostenevano una particolare notazione a scapito di altre adottate altrove. Intorno alla metà degli mwhaanni novanta diversi metodi e linguaggi iniziarono a fondersi e si iniziò a delineare la possibilità di una integrazione dei principali formalismi in una notazione universalmente accettabile.

Fra i metodi e le notazioni più apprezzati e diffusi del periodo spiccavano mwhgOMT (Object Modeling Technique) di mwhwJim Rumbaugh e il cosiddetto metodo mwiaBooch di mwiqGrady Booch, entrambi ricercatori presso mwigRational Software. Il lavoro di unificazione iniziò con loro; in seguito si unì a questo sforzo Jacobson con la sua mwiwcasa di sviluppo mwjaObjectory. Il primo risultato congiunto di questo mwjqteam fu mwjgOOSE (Object Oriented Software Engineering).

Mentre "i tres amigos" operavano per unificare i propri approcci all'analisi e alla progettazione a oggetti, il progetto fu accolto sotto l'egida dell'mwkaOMG (Object Management Group), un consorzio fondato con l'obiettivo di creare e gestire mwkqstandard nel contesto dello sviluppo del software a oggetti. Nel 1995 l'OMG raccolse tutti i principali metodologisti del settore in un incontro internazionale per discutere della notazione unificata. Nel 1996 l'OMG emise una RFP (Request for Proposal) per questa notazione. Nello stesso anno Booch, Rumbaugh e Jacobson misero a punto le mwkwmwlarelease 0.9 e 0.91 di UML. Il progetto fu ben accolto dalla comunità internazionale e innumerevoli grandi organizzazioni si unirono a Rational per proseguirlo, per esempio mwlqDigital, mwlgHewlett-Packard, mwlwIBM, mwmaMicrosoft, mwmqOracle e mwmgUnisys. Nel 1997 questo gruppo esteso realizzò UML 1.0 che fu sottoposto alla OMG come risposta alla RFP dell'anno precedente.

La release 1.1 di UML contribuì a consolidare la semantica del linguaggio e incluse elementi tratti da una proposta avanzata indipendentemente all'OMG da un gruppo composto da mwnaIBM, ObjectTime, Ptech e altre.

Descrizione

Il linguaggio nacque con l'intento di unificare approcci precedenti, dovuti ai tre padri di UML e altri, raccogliendo le mwoqmigliori prassi nel settore e definendo così uno mwogstandard industriale unificato. UML svolge un'importantissima funzione di "mwowlingua franca" nella comunità della progettazione e programmazione a oggetti. Gran parte della letteratura di settore usa UML per descrivere soluzioni analitiche e progettuali in modo sintetico e comprensibile a un vasto pubblico.

La versione 2.0 è stata consolidata nel 2004 e ufficializzata da OMG nel 2005. UML 2.0 riorganizza molti degli elementi della versione precedente (1.5) in un quadro di riferimento ampliato e introduce molti nuovi strumenti, inclusi alcuni nuovi tipi di diagrammi. Sebbene mwpqOMG indichi UML 2.0 come la versione "corrente" del linguaggio, la transizione è di fatto ancora in corso; le stesse specifiche pubblicate da OMG sono ancora non completamente aggiornate e il supporto dei tool a UML 2.0 è, nella maggior parte dei casi, appena abbozzato. L'ultima versione è la 2.5, finalizzata nel 2013.

Caratteristiche generali

La notazione UML è semi-grafica e mwqasemi-formale; un modello UML è costituito da una collezione organizzata di mwqqdiagrammi correlati, costruiti componendo elementi grafici con significato formalmente definito, elementi testuali formali, ed elementi di testo libero. Ha una mwqgsemantica molto precisa e un grande potere descrittivo.

Il linguaggio è stato progettato con l'obiettivo esplicito di facilitare il supporto software alla costruzione di modelli e l'integrazione di questo supporto con gli mwraambienti integrati di sviluppo. In particolare, OMG gestisce una famiglia di standard correlata a UML, detta mwrqModel Driven Architecture (MDA), che ha lo scopo di fornire le fondamenta concettuali e semantiche per lo sviluppo di ambienti evoluti di mwrgmwrwround-trip engineering in cui la modellazione UML possa sostituire di fatto la programmazione tradizionale in qualche misura. Sebbene questo obiettivo sia ancora da raggiungere, molti mwsaIDE comprendono strumenti di modellazione in UML e forniscono meccanismi automatici di traduzione parziale dei diagrammi UML in mwsqcodice e viceversa. Viceversa, molti ambienti software dedicati alla modellazione in UML consentono di generare codice in diversi linguaggi.

UML è un linguaggio di modellazione generale che fornisce concetti e strumenti applicabili in tutti i contesti. Poiché particolari domini applicativi o famiglie di applicazioni potrebbero aver bisogno di concetti ulteriori e specifici, UML fornisce un meccanismo standard che consente di estendere il linguaggio. Un'estensione di UML per un particolare contesto viene detta un mwswprofilo UML.

Aspetti della modellazione

UML consente di descrivere un sistema secondo tre aspetti principali, per ciascuno dei quali si utilizzano diagrammi specifici che possono poi essere messi in relazione fra loro:

• il modello funzionale (mwuqfunctional model) rappresenta il sistema dal punto di vista dell'utente, ovvero ne descrive il suo comportamento così come esso è percepito all'esterno, prescindendo dal suo funzionamento interno. Questo tipo di modellazione corrisponde, in mwugingegneria del software, all'mwuwanalisi dei requisiti. La modellazione funzionale utilizza gli mwvamwvqUse Case Diagram (diagrammi dei casi d'uso).
• il modello a oggetti (mwvwobject model) rappresenta la struttura e sottostruttura del sistema utilizzando i concetti mwwaobject-oriented di mwwqclasse, mwwgoggetto, le relazioni fra classi e fra oggetti. In ingegneria del software, questo tipo di modellazione può essere utilizzata sia nella fase di mwwwanalisi del dominio sia nelle varie fasi di mwxaprogetto a diversi livelli di dettaglio. Utilizza mwxqmwxgclass diagram (diagrammi delle classi), mwxwmwyaobject diagram (diagrammi degli oggetti), e mwyqmwygdeployment diagram (diagrammi di sviluppo).
• il modello dinamico (mwzadynamic model) rappresenta il comportamento degli oggetti del sistema, ovvero la loro evoluzione nel tempo e le dinamiche delle loro interazioni. È strettamente legato al modello a oggetti e viene impiegato negli stessi casi. Utilizza i mwzqmwzgsequence diagram (diagrammi di sequenza), i mwzwdiagrammi delle attività e gli mwaamwaqstatechart diagram (diagrammi degli stati).

UML 2.0

La versione 2.0 di UML, ufficializzata da OMG nel 2005, presenta numerose novità rispetto alla precedente versione 1.5, che resta comunque quella più diffusamente supportata dagli strumenti di modellazione e citata nella letteratura.

Fra le principali novità di UML 2.0 vi sono:

• ampliamento, razionalizzazione e revisione del metamodello, inclusa una definizione più rigorosa del concetto di mwbwstereotipo e dei meccanismi di estensione (mwcaprofili)
• introduzione del linguaggio formale mwcgOCL come parte integrante di UML
• numerosi nuovi elementi per la costruzione dei diagrammi tradizionali
• alcuni nuovi tipi di diagrammi:


• supporto per l'approccio mwfwarchitettura guidata dal modello

Alcuni elementi di modello e diagrammi hanno cambiato nome; per esempio, i mwgqcollaboration diagram si chiamano ora mwggcommunication diagram.

Applicazioni

UML non definisce alcuno specifico metodo per la creazione di modelli. UML può quindi essere utilizzato nel contesto di diversi approcci. La OMG gestisce un metodo standard correlato a UML, ma proposto come specifica indipendente, detto mwhqRUP.

UML consente di costruire modelli object-oriented per rappresentare mwiadomini di diverso genere. Nel contesto dell'ingegneria del software, viene usato soprattutto per descrivere il dominio applicativo di un mwiqsistema software e/o il comportamento e la struttura del sistema stesso. Il modello è strutturato secondo un insieme di viste che rappresentano diversi aspetti della cosa modellata (funzionamento, struttura, comportamento e così via), a scopo sia di mwiganalisi sia di mwiwprogetto, mantenendo la mwjatracciabilità dei concetti impiegati nelle diverse viste. Oltre che per la modellazione di sistemi software, UML viene spesso impiegato per descrivere domini di altri tipi come sistemi mwjqhardware, strutture organizzative aziendali, mwjgprocessi di business.

Lo standard UML, gestito da OMG, definisce una sintassi e delle regole di interpretazione; non si tratta quindi di un metodo di progettazione e per questo motivo può essere adottato con diversi metodi o in ambiti diversi da quello informatico.

Struttura di un modello UML

Un modello UML è costituito da:

1. Viste: mostrano i diversi aspetti del sistema per mezzo di un insieme di diagrammi.
2. Diagrammi: permettono di descrivere graficamente le viste logiche.
3. Elementi del modello: concetti che permettono di realizzare vari diagrammi (es. attori, classi, mwlgpackage, oggetti, e così via).

Le Viste

Lo strato più esterno dell'UML è costituito dalle seguenti mwmqviste:

1. Vista dei casi d'uso (mwnause case view) utilizzata per analizzare i requisiti utente. Obiettivo di questo livello di analisi è studiare il sistema considerandolo come una scatola nera. È necessario concentrarsi su cosa il sistema deve fare astraendosi il più possibile dal come: è necessario individuare tutti gli attori, i casi d'uso e le relative associazioni. Importante è dettagliare i requisiti del cliente, capirne i desideri più o meno consapevoli, cercare di prevedere i possibili sviluppi futuri, ecc.
2. Vista di progettazione (mwngdesign view) descrive come le funzionalità del sistema devono essere realizzate; in altre parole analizza il sistema dall'interno (scatola trasparente).
3. Vista di implementazione (mwoaimplementation view) descrive i package, le classi e le reciproche dipendenze.
4. Vista dei processi (mwogprocess view) individua i processi e le entità che li eseguono sia per un utilizzo efficace delle risorse, sia per poter stabilire l'esecuzione parallela degli oggetti.
5. Vista di sviluppo (mwpadeployment view) mostra l'architettura fisica del sistema e definisce la posizione delle componenti software nella struttura stessa.

I diagrammi classici (UML 1.x)

Diagramma dei casi d'uso

I diagrammi dei casi d'uso (UCD) modellano il mwqqcomportamento esterno di un mwqgsistema in termini delle mwqwfunzioni che esso mette a disposizione agli attori che interagiscono con essi (utenti, altri sistemi software, ecc.). Gli UCD sono il diagramma principale nella vista dei casi d'uso. In molti mwrgmodelli di sviluppo software basati su UML, i casi d'uso sono la vista principale del sistema (processi "use case driven").

Diagramma di comunicazione

mwvamwvqNota: questo tipo di diagramma si chiamava "diagramma di collaborazione" (collaboration diagram) in UML 1.x

Relazioni fra diagrammi

Il diagramma delle classi e i diagrammi di interazione vengono usati per modellare la realizzazione dei casi d'uso, mentre il diagramma dei componenti e quello di mwxadeployment permettono di specificare l'architettura di sistema che dovrà implementare i casi d'uso. Un ruolo specifico può essere svolto dai diagrammi di stato e di attività. È possibile utilizzare un diagramma di stato per rappresentare l'evoluzione degli stati, cioè delle condizioni in cui il sistema si può trovare durante l'esecuzione del caso d'uso. Inoltre è possibile rappresentare la sequenza dei passi e le condizioni che specificano uno o più scenari del caso d'uso con un diagramma di attività. I diagrammi UML permettono la modellazione della struttura statica e del comportamento dinamico di un sistema. Il sistema è rappresentato come un insieme di oggetti (moduli software) che collaborano e reagiscono a eventi esterni per eseguire attività a beneficio dei clienti (utilizzatori). Certi modelli UML enfatizzano alcuni aspetti del sistema e ne ignorano altri che possono essere evidenziati da altri modelli. Insieme, tutti i modelli forniscono una descrizione completa del sistema e possono essere classificati in tre gruppi:

1. mwxwmodelli dello stato (vista statica): descrivono le strutture statiche dei dati e si possono ottenere utilizzando per esempio i diagrammi delle classi;
2. mwyqmodelli del comportamento (vista operativa): descrivono la collaborazione tra oggetti. Ci sono molte tecniche di visualizzazione per la modellazione del comportamento, come il diagramma dei casi d'uso, il diagramma di sequenza, il diagramma di collaborazione e il diagramma di attività;
3. mwywmodelli del cambiamento di stato (vista dinamica): descrivono gli stati permessi dal sistema nel tempo. La prima tecnica di visualizzazione è il diagramma degli stati, basato su un modello di evoluzione degli stati di un oggetto.

Diagrammi introdotti in UML 2.0

Estendibilità e profili

UML include tre meccanismi che consentono l'estensione della sua mw1wsintassi e della sua mw2asemantica da parte dell'utente: mw2qmw2gstereotipi, mw2wmw3atagged value e mw3qconstraint. Questi strumenti possono essere usati nel contesto di un modello per esprimere concetti altrimenti non rappresentabili in UML, o non rappresentabili in modo chiaro, sufficientemente astratto, e così via. I mw3wprofili UML sono collezioni di stereotipi, mw4atagged value e mw4qconstraint che specializzano il linguaggio per particolari mw4gdomini applicativi o per l'uso di UML in congiunzione con particolare tecnologie. Fra i profili riconosciuti ufficialmente da OMG si trovano profili per mw4wCORBA, per i mw5asistemi distribuiti, per sistemi con vincoli di mw5qQoS e per mw5gsistemi real-time.

Software per UML

Esistono moltissimi strumenti software per la modellazione in UML e moltissimi mw6qambienti integrati di sviluppo che includono funzioni di modellazione in UML.

Strumenti liberi

Si riportano qui alcuni strumenti mw7aliberi ed open source per la modellazione in UML. Si veda anche il mw7qsito ufficiale di UML per un elenco aggiornato. La maggior parte di questi strumenti supporta solo parzialmente o non supporta la versione 2.0 di UML.

• ArgoUML mw8q – uno strumento UML basato su mw8gJava
• ATL mw9q
• BOUML mw-a, licenza nuovamente libera dalla versione 7.0; supporta anche UML 2.0
• mw-gDia mw-w – uno strumento per creare diagrammi mw-aGTK+/mw-qGNOME che supporta anche UML mw-g.
• Draw.io mwaqe - software di diagramma uml online gratuito.
• mwaqmEclipse – con lo Eclipse Modeling Framework (EMF) e UML 2.0
• Fujaba mwaqy – piattaforma di sviluppo UML/Java; ne esiste una versione per Eclipse.
• Gaphor mwaqk - Programma in Python per UML, SysML, RAAML e modelli C4.
• GitMind mwaqw - esempi di diagrammi uml pronti all'uso gratuiti.
• MonoUML – progetto basato sulla piattaforma mwaq8Mono, GTK+ e ExpertCoder.
• mwariNetBeans mwarm – plugin per l'ambiente NetBeans di Sun (non più disponibile da netbeans 6.7 in poi)
• StarUML mwary – Piattaforma mwarcMDA UML mwargmwarkopen source (in mwaroGPL)
• mwarwUmbrello UML Modeller – componente del mwar0KDE.
• UML Pad mwasa – strumento sviluppato in mwasewxWidgets leggero e senza installazione (compresso in un file zip).
• UMLet mwasq – uno strumento basato su Java.
• Violet UML Editor mwasymwasc[21] – uno strumento visuale basato su Java.

Strumenti proprietari

Si riportano mwasostrumenti proprietari per la modellazione UML.

• Altova UModel 2005 mwas4
• ARTiSAN Studio mwate
• Borland Together
• Cadifra UML Editor
• Creately mwatg
• Gliffy mwats
• I-Logix Rhapsody mwat4
• Jude
• NoMagic MagicDraw mwaum
• Lucidchart mwauy
• Modelistic JME
• Objecteering/UML mwau0
• OmniGraffle
• Poseidon for UML
• Rational Rose, di mwavqRational Software, è di gran lunga lo strumento più noto e diffuso. È anche il primo ambiente UML della storia: due dei tre padri di UML lavoravano inizialmente per la Rational Software.
• Rational Software Architect – come sopra
• SMARTDRAW mwavk
• Sparx Enterprise Architect
• Select Component Factory mwav4 mwav8Archiviato il 12 aprile 2006 in Internet Archive.
• Software Ideas Modeler mwawm
• swREUSER
• Telelogic System Architect mwawg
• Unimodeler mwaws mwawwArchiviato il 6 dicembre 2004 in Internet Archive.
• Visual Paradigm mwaxa

Bibliografia

• citeref-mcmicrocomputer-180UML, ovvero verso lo standard (JPG), in MCmicrocomputer, n. 180, Roma, Technimedia, gennaio 1998, pp. 126-128, ISSN 1123-2714.
• mwaxu(EN) mwaxyGrady Booch, mwaxcJames Rumbaugh, mwaxgIvar Jacobson, mwaxkUnified Modeling Language User Guide, Addison-Wesley 1999
• mwaxs(EN) Ivar Jacobson, Grady Booch, James Rumbaugh, mwaxwUnified Software Development Process, Addison-Wesley 1999
• mwax4(EN) James Rumbaugh, Ivar Jacobson, Grady Booch, mwax8Unified Modeling Language Reference Manual, Addison-Wesley 2004 (tratta UML 2.0)
• mwaye(EN) mwayiMartin Fowler, mwaymUml Distilled: Applying the Standard Object Modeling Language, Addison-Wesley 2003 (tratta UML 2.0)
• mwayu(EN) mwayyCraig Larman, mwaycApplying Uml and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process, Prentice Hall 2005
• mwayk(EN) mwayoRobert C. Martin, mwaysUML for Java Programmers, Addison Wesley, 2003 (UML e la programmazione in mwaywJava)

Voci correlate


• Analisi orientata agli oggetti

• Progetto orientato agli oggetti

Altri progetti

Altri progetti

• Wikimedia Commons

• Wikimedia Commons contiene immagini o altri file sullo Unified Modeling Language

Collegamenti esterni

• (EN) Sito ufficiale, su uml.org.
• citereffoldoc(EN) Denis Howe, Unified Modeling Language, in Free On-line Dictionary of Computing. Disponibile con licenza mwaagGFDL